package com.neulogistics.contrib.warehouse.domain.service;

import com.neulogistics.contrib.warehouse.domain.exception.WarehouseDomainException;
import com.neulogistics.contrib.warehouse.domain.model.valueobject.GoodsItem;

import java.util.List;

public interface IWarehouseDomainService {



    Boolean transferDelivery(Integer centerWarehouseId, Long outboundOrderId,
                             Integer subWarehouseId, Long inboundOrderId,
                             Long transferOrderId, GoodsItem goodsItem) throws WarehouseDomainException;

    void generateCirculationOrderByDelivery(Integer centerWarehouseId, Long outboundOrderId,
                                            Integer subWarehouseId, Long inboundOrderId,
                                            Long transferOrderId, List<GoodsItem> goodsItems);

    void generateCirculationOrderByReturn(Integer centerWarehouseId, Long centerInboundOrderId,
                                          Integer subWarehouseId, Long subInboundOrderId,
                                          Long transferOrderId, List<GoodsItem> goodsItems);
}
